#ifndef _GRIDTEST_H_
#define _GRIDTEST_H_

#include <cppunit/Test.h>
#include <cppunit/TestAssert.h>
#include <cppunit/TestCaller.h>
#include <cppunit/TestFixture.h>
#include <cppunit/TestSuite.h>
#include <cppunit/Exception.h>
#include <cppunit/extensions/HelperMacros.h>

#include <cstdlib>
#include "grid.h"

class GridTest : public CppUnit::TestFixture {
	
	CPPUNIT_TEST_SUITE( GridTest );
	CPPUNIT_TEST(testConstructorDestructor);	      
	CPPUNIT_TEST(testAddSiteException);
	CPPUNIT_TEST(testAddOneSite);
	CPPUNIT_TEST(testAddSite);	
	CPPUNIT_TEST(testGetBottleneckLink);
	CPPUNIT_TEST(testGridIsBusy);
	CPPUNIT_TEST(testTotalNumberOfProcessors);
	CPPUNIT_TEST_SUITE_END();
	
	private:
	public:
		void setUp(); 
		
		/*Test Cases*/
		void testConstructorDestructor();
		void testAddSiteException();
		void testAddOneSite();
		void testAddSite();		
		void testGetBottleneckLink();
		void testGridIsBusy();
		void testTotalNumberOfProcessors();
		/////////////
		
		void tearDown();
		
};

#endif //_GRIDTEST_H_
